package com.codebattery.util;

import org.hibernate.transform.ResultTransformer;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class DTOResultTransformer<ID, DTO> implements ResultTransformer {

    private Map<ID, DTO> postDTOMap = new LinkedHashMap<>();

    @Override
    public Object transformTuple(Object[] tuple, String[] aliases) {

//        Map<String, Integer> aliasToIndexMap = aliasToIndexMap(aliases);
//
//        Long postId = longValue(tuple[aliasToIndexMap.get(DTO.ID_ALIAS)]);
//
//        DTO postDTO = postDTOMap.computeIfAbsent(
//            postId,
//            id -> new DTO(tuple, aliasToIndexMap)
//        );
//
//        postDTO.getComments().add(
//            new PostCommentDTO(tuple, aliasToIndexMap)
//        );
//
//        return postDTO;

        return null;
    }

    @Override
    public List transformList(List collection) {
        return new ArrayList<>(postDTOMap.values());
    }
}